《文言陰符》有云:天下之物既眾。或不知幾何。或不可勝數。皆以列法法之。夫列者,列諸物也,其物不拘,或列數,或列言,或列爻,或列列,或列辨,或列空,或俱列,皆不限也。
今蚺之列者,元組、串列、字典、集合也。元組,()
也,以括弧列物也。串列,[]
也,以方括弧列物也。字典,{}
也,以花括弧列主從也。集合,曰set()
、曰{1}
也,以花括弧列主也。列有取更法,取法,曰取物之法,各列詳述。更法有二,一曰更物之法,或充或易或刪,二曰更列之法,或銜或更或刪。
夫元組,列者,列物有序,序以讀分,分之以數也。其序始於零,次為一,再次云云也。僅有一物者,不成元組。夫元組之取更,更物之法,皆不可也,更列之法,皆可也。取物之法,取物以序,序於方括弧,方括弧置名旁。
問曰:「今有一列元組,乃一至五也,則何以列物,且書之何如?」
# 一至五之元組,列之如下
a = (1, 2, 3, 4, 5)
print(a)
(1, 2, 3, 4, 5)
問曰:「今有一列元組,乃一至五也,刪之何如?」
術曰:「del()
也,欲刪之列於括弧內。」
a = (1, 2, 3, 4, 5)
print(a)
del(a)
print(a)
(1, 2, 3, 4, 5)
Traceback (most recent call last):
File "C:\Users\ghost\OneDrive\Project\AnythingElse\a.py", line 5, in <module>
print(b)
NameError: name 'b' is not defined
問曰:「今有二列元組,一曰一至五,二曰六至十,欲銜之,乃得?」
術曰:「二列相加也。」
a = (1, 2, 3, 4, 5)
b = (6, 7, 8, 9, 10)
print(a+b)
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
問曰:「今有一列元組,一至五也,欲取物,取第一並取第二至第四,安能得之?」
術曰:「取第一,故取列之序之始,a[0]
也。取第二至第四,取多物者,始者,取欲取之物之序,尾者,取欲取之物之序加一也,始尾以冒號分之。故a[1:4]
也」
# 元組,一至五也
a = (1, 2, 3, 4, 5)
# 取第一,故取列之序之始,乃零也
print(a[0])
# 取第二至第四,故取序之一,冒號分之,取序之四
print(a[1:4])
1
(2, 3, 4)
夫串列,列者,列物大抵相同元組,然僅一物者,亦為串列。夫串列之取更,亦相同於元組也。唯更物之法,充易刪皆可也。故今欲通串列者,先明元組也。示其例以書之、更物也。
# 書之,一至五
a = [1, 2, 3, 4, 5]
print(a)
[1, 2, 3, 4, 5]
問曰:「今有一列串列,乃一至五也,欲易其第一以致五,刪其第二,充物以六。何如?」
術曰:「易物之法先取物,故取第一曰a[0]
,然令之為五,乃得。刪其第二亦先取物後以del()
,乃刪。充物先知其名,後以append()
,欲充之物於括弧,乃充。」
a = [1, 2, 3, 4, 5]
print(a)
a[0] = 5
print(a)
del a[1]
print(a)
a.append(6)
print(a)
[1, 2, 3, 4, 5]
[5, 2, 3, 4, 5]
[5, 3, 4, 5]
[5, 3, 4, 5, 6]